前幾天做了那麼多準備工作,當然就是為了在之後能夠很順利的串接永豐金流API的其他服務
其實一開始收到API規格書的時候,也是看得十分霧煞煞......畢竟這是我第一次接觸開放銀行API,有些參數的原理也是在邊寫鐵人賽+實作的過程中慢慢體悟的,例如說Nonce
其實是作為IP驗證,以確保時效性&來源是一致的,還有使用AES-CBC
加密內文時需要的HashID . IV . 訊息內文JSON,也就是對應Key
. 初始向量
. Value
,不過通常在加解密時,會使用隨機的IV值,才會是最安全的,這邊可以參考維基百科說的:
使用亂數產生的初始向量才能達到語義安全(訊息驗證碼也可能用到初始向量),並讓攻擊者難以對原文一致且使用同一把金鑰生成的密文進行破解。
講到這邊,就是今日的重頭戲了,前六天談了那麼多這些參數該如何準備,那麼又該如何把這些零件"組裝"到自己的專案呢?
項次 | 參數 | 說明 | 範例 | 如何取得
------------ | ------------ | ------------ | ------------
1 | Version | 版本號 | "1.0.0" | 固定值
2 | ShopNo | 商店代號 | "BA0026_001" | Email提供
3 | APIService | API 服務名稱 | Ex:"OrderCreate" | 共有三種,依照不同場景判斷
4 | Nonce | 客戶端IP驗證(確保交易安全) | Day03 | 由API向funBiz取得
5 | Sign | 安全簽章 | Day03 | 訊息內文+Nonce
+HashID
加工產生
6 | Message | 加密JSON | Day04. Day05 | 由原始交易訊息內文
+HashID
(32位元值)+IV
(16位元值)進行AES-CBC
加密產生
看到這邊,需要自己實作的部分,例如:
SHA256
, AES-CBC
,以及位元運算等等欸嘿,曾經寫過ASP.NET MVC(以下簡稱MVC)或是.Net Core的大大們,應該對以上三點很熟悉吧?
為了將線上金流API打包成一個微服務,一個好的架構設計是必須的這不是廢話嗎!?
但既然這次鐵人賽是以 .Net Core 3.1 作為核心的開發架構,這次會就會先從.Net Core的框架設計開始介紹
先賣個關子,明天就會來開始介紹很重要很重要的 三層式架構
還不了解我今天到底說了什麼的同學悶,不要緊張!
可以先試想簡單的問題:
如果今天開了一間速食餐廳,裡面有販售飲料、冰淇淋、漢堡、炸雞、薯條,
從點餐、收銀、備料、出餐、到叫號,你要如何分配工作給員工呢?
可以先想想看,應該很快就能明白了XD
See you!